package com.ruoyi.system.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.base.BaseEntity;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 提现记录表 wdy_withdraw
 * 
 * @author ruoyi
 * @date 2019-08-09
 */
public class WdyWithdraw extends BaseEntity
{
	private static final long serialVersionUID = 1L;
	/*0处理中*/
	public static final int STATUS_PROCESSING = 0;
	/*1成功*/
	public static final int STATUS_SUCCESS = 1;
	/*2失败*/
	public static final int STATUS_FAIL = 2;

	/** id */
	@TableId(type = IdType.AUTO)
	private Long id;
	/** 提现订单号 */
	private String withdrawId;
	/** 用户id */
	private String userId;
	/** 提现金额 */
	private BigDecimal amount;
	/**金额类型*/
	private Integer amountType;
	/** 提现手续费 */
	private BigDecimal commission;
	/**
	 * 实际金额
	 */
	private BigDecimal actualAmount;
	/** 提现交易状态(0处理中,1提现成功,2提现失败) */
	private Integer withdrawStatus;
	/** 姓名 */
	private String realName;
	/** 提现银行卡号 */
	private String bankCardNo;
	/** 银行名称 */
	private String bankName;
	/** 银行编码 */
	private String bankCode;
	/** 开户行 */
	private String bankSubbranch;
	/** 钱包地址 */
	private String walletAddress;
	/**
	 * 交易hash
	 */
	private String txnHash;
	/** 提现发起时间 */
	private Date withdrawTime;
	/** 出款时间 */
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private Date remitTime;
	/** 到账时间 */
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private Date completedTime;

	/**交易密码*/
	private transient String tradePassword;


	public void setId(Long id) 
	{
		this.id = id;
	}

	public Long getId() 
	{
		return id;
	}
	public void setWithdrawId(String withdrawId) 
	{
		this.withdrawId = withdrawId;
	}

	public String getWithdrawId() 
	{
		return withdrawId;
	}
	public void setUserId(String userId) 
	{
		this.userId = userId;
	}

	public String getUserId() 
	{
		return userId;
	}
	public void setAmount(BigDecimal amount) 
	{
		this.amount = amount;
	}

	public BigDecimal getAmount() 
	{
		return amount;
	}
	public void setCommission(BigDecimal commission) 
	{
		this.commission = commission;
	}

	public BigDecimal getCommission() 
	{
		return commission;
	}
	public void setWithdrawStatus(Integer withdrawStatus) 
	{
		this.withdrawStatus = withdrawStatus;
	}

	public Integer getWithdrawStatus() 
	{
		return withdrawStatus;
	}
	public void setRealName(String realName) 
	{
		this.realName = realName;
	}

	public String getRealName() 
	{
		return realName;
	}
	public void setBankCardNo(String bankCardNo) 
	{
		this.bankCardNo = bankCardNo;
	}

	public String getBankCardNo() 
	{
		return bankCardNo;
	}
	public void setBankName(String bankName) 
	{
		this.bankName = bankName;
	}

	public String getBankName() 
	{
		return bankName;
	}
	public void setBankCode(String bankCode) 
	{
		this.bankCode = bankCode;
	}

	public String getBankCode() 
	{
		return bankCode;
	}
	public void setBankSubbranch(String bankSubbranch) 
	{
		this.bankSubbranch = bankSubbranch;
	}

	public String getBankSubbranch() 
	{
		return bankSubbranch;
	}
	public void setWalletAddress(String walletAddress) 
	{
		this.walletAddress = walletAddress;
	}

	public String getWalletAddress() 
	{
		return walletAddress;
	}
	public void setWithdrawTime(Date withdrawTime) 
	{
		this.withdrawTime = withdrawTime;
	}

	public Date getWithdrawTime() 
	{
		return withdrawTime;
	}
	public void setRemitTime(Date remitTime) 
	{
		this.remitTime = remitTime;
	}

	public Date getRemitTime() 
	{
		return remitTime;
	}
	public void setCompletedTime(Date completedTime) 
	{
		this.completedTime = completedTime;
	}

	public Date getCompletedTime() 
	{
		return completedTime;
	}
	public void setDelFlag(Integer delFlag) 
	{
		this.delFlag = delFlag;
	}

	public Integer getDelFlag() 
	{
		return delFlag;
	}
	public void setCreateBy(String createBy) 
	{
		this.createBy = createBy;
	}

	public String getTradePassword() {
		return tradePassword;
	}

	public void setTradePassword(String tradePassword) {
		this.tradePassword = tradePassword;
	}

	public BigDecimal getActualAmount() {
		return actualAmount;
	}

	public void setActualAmount(BigDecimal actualAmount) {
		this.actualAmount = actualAmount;
	}

	public String getTxnHash() {
		return txnHash;
	}

	public void setTxnHash(String txnHash) {
		this.txnHash = txnHash;
	}

	public Integer getAmountType() {
		return amountType;
	}

	public void setAmountType(Integer amountType) {
		this.amountType = amountType;
	}

	public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("withdrawId", getWithdrawId())
            .append("userId", getUserId())
            .append("amount", getAmount())
            .append("commission", getCommission())
            .append("withdrawStatus", getWithdrawStatus())
            .append("realName", getRealName())
            .append("bankCardNo", getBankCardNo())
            .append("bankName", getBankName())
            .append("bankCode", getBankCode())
            .append("bankSubbranch", getBankSubbranch())
            .append("walletAddress", getWalletAddress())
            .append("withdrawTime", getWithdrawTime())
            .append("remitTime", getRemitTime())
            .append("completedTime", getCompletedTime())
            .append("delFlag", getDelFlag())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .toString();
    }
}
